package com.example.no1admin.mapper;

import com.example.no1admin.pojo.entity.Comments;
import com.example.no1admin.pojo.vo.comments.CommentsDetailVO;
import com.example.no1admin.pojo.vo.comments.CommentsListItemVO;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface CommentsMapper {
    /**
     * 插入评论数据
     * @param comments 评论数据
     * @return 受影响的行数，成功插入数据时，将返回1
     */
    int insert(Comments comments);

    /**
     * 根据评论id删除对应的评论数据
     * @param id 评论id
     * @return 受影响的行数，成功删除数据时，将返回1，如果id对应的数据不存在，则返回0
     */
    int deleteById(Long id);

    /**
     * 根据若干个评论id，批量删除评论数据
     * @param ids 期望删除的若干个评论数据的id
     * @return 受影响的行数，将返回成功删除的数据量
     */
    int deleteByIds(Long... ids);

    /**
     * 根据评论内容统计此用户评论内容对应的评论数据的数量
     * @param content 评论内容
     * @return 此评论内容对应的评论数据的数量
     */
    int countByContent(String content);

    /**
     * 根据评论id查询评论详情
     * @param id 评论id
     * @return 此评论id对应的评论数据
     */
    CommentsDetailVO getById(Long id);
    /**
     *查询评论列表
     * @return 评论列表的集合
     */
    List<CommentsListItemVO> list();
}
